package tests;

import java.util.Iterator;

import junit.framework.Assert;
import junit.framework.TestCase;
import aplicacion.modelo.ColleccionDeFantasmas;
import aplicacion.modelo.Fantasma;
import aplicacion.modelo.Speedy;
import aplicacion.modelo.Tablero;

public class SpeedyTest extends TestCase {
	private Tablero tablero;
	private Speedy speedy = null;
	
	protected void setUp() {
		tablero = new Tablero("./config/pantalla-test.cfg");
	}
	public void testCazar() {
		setUp();
		
		ColleccionDeFantasmas colFantasmas = tablero.getListaFantasma();
		Iterator<Fantasma> iterador = colFantasmas.iterator();		
		boolean encontrado = false;
		
		while(iterador.hasNext() && !encontrado)
		{
			Fantasma fantasma = iterador.next();
			if(fantasma instanceof Speedy){
				speedy = (Speedy) fantasma;
				encontrado = true;
			}
		}

		speedy.cazar();	

		while ( !SpeedyAlcanzoAPacman() ) {
			speedy.vivir();
		}
		Assert.assertTrue(SpeedyAlcanzoAPacman());
	}
	
	private boolean SpeedyAlcanzoAPacman() {
		return speedy.getPosicion().equals(tablero.getPacman().getPosicion());
	}
}
